public class VariableTest {
//  七种基本类型，不包含boolean类型
//  1.自动类型提升：
//  数据类型小的与数据类型大的做运算时自动转成数据类型大的；
//  byte 、 short 、 char 、 int --> long --> float --> double
//  byte、short、char三中之间或者自己与自己做运算时自动传换成int类型
//  2.强制类型转换：自动类型提升运算的逆运算。

//  **********************************************************
  public static void main(String[] args) {
    byte b1 = 2;
    int i1 = 129;
//  编译不通过
//  byte b2 = b1+i1;
    int b2 = b1+i1;
    System.out.println(b2);

    float f = b1+i1;
    System.out.println(f);

//  ****************************
    char c1 = 'a';
    int i3 = 10;
    int i4 = c1+i3;
    System.out.println(i4);

    char c2 = 'b';
    long l1 = 10;
    long l2 = c2+l1;
    System.out.println(l2);

//  *********************************************
    double d1 = 12.9;

    int i5 = (int)d1;//截断操作
    System.out.println(i5);

//  没有精度损失
    long l3 = 123;
    short s2 = (short)l3;
    System.out.println(s2);

//  精度损失
    int i6 = 128;
    byte b3 = (byte)i6;
    System.out.println(b3);//-128

//  编码情况
    long l4 = 12322222213l;
    System.out.println(l4);

    float f1 = 10.5f;
//    float f2 = f1+10.5;//报错
  }
}
